1. Field of the Invention
The present disclosure generally relates to information processing and, more particularly, to an information processing apparatus, method for controlling the information processing apparatus, storage medium, and to a technique for recognizing a touch operation performed by a recognition object based on a proximity state between the recognition object and a touch target surface.
2. Description of the Related Art
In recent years, in some situations, a touch operation has been performed on a physically non-existent operation surface (a virtual surface) in an augmented reality (AR) environment or a mixed reality (MR) environment. Further, in some situations, a user interface (hereinafter referred to as a UI) has been projected on an arbitrary operation surface such as a wall or a desk by projection, and the touch operation has been performed on the projected UI. In such situations, whether the operation surface and a recognition object are in contact with each other is often determined by a determination based on a distance between the operation surface and the recognition object (for example, a user's fingertip), which should be recognized as an instruction portion that performs the operation, with use of a stereo camera, a range image sensor, or the like. More specifically, a predetermined threshold value is prepared for the distance between the operation surface and the user's fingertip. Then, if this distance is shorter than the threshold value, it is determined that the operation surface is in a “touch state”, which indicates such a state that the operation surface is touched. On the other hand, if this distance is longer than the threshold value, it is determined that the operation surface is in an “non-touch state (released state)”, which indicates such a state that the operation surface is not touched. Then, a position of the fingertip at the time of a shift from the non-touch state into the touch state is identified as a touch position. On the other hand, a position of the fingertip at the time of a shift from the touch state into the non-touch state is identified as a position at which the touch ends (a release position).
However, if a resolution for a detectable distance is low (coarse), an error may occur in a timing when the state is determined and in the identified position. Further, even if the resolution for the distance is high, setting a large value as the threshold vale for distinguishing the touch state and the non-touch state from each other (for example, setting a value larger than the width of the fingertip as the threshold value) may lead to the same problem.
In optical touch panels, it is determined that the distance between the display item and the instruction portion falls below the predetermined threshold value according to detection of interruption of light emitted to a detection surface set in parallel with the operation surface. According to a technique discussed in Japanese Patent Application Laid-Open No. 5-241733, how a finger is inclined is recognized by detecting positions of the instruction portion on two-step detection surfaces, for correcting an error in a position of the instruction portion, which is generated between a height of the detection surface and a height of the actual operation surface due to an inclination of the finger touching the operation surface.
However, according to the conventional technique discussed in Japanese Patent Application Laid-Open No. 5-241733, a positional relationship between the operation surface and the two-step detection surfaces is fixed when a product is designed. Therefore, this technique has not been considered to be applied to a case where the operation surface is set on the virtual surface or the operation surface is set on the arbitrary plane.